The data blocks needed to store directories and files can be found by looking in the data allocation bitmap.
2.
Also do ( some ) languages actually specify data allocation types, or is it up to the compiler writer more generally?
3.
For instance, Skute is a mechanism based on key / value storage that allows dynamic data allocation in an efficient way.
4.
You can supposedly get the filter turned off, though I didn't bother ( I only got the Vodafone dongle as a backup for the occasions that Three was unavailable, and it had an attractive non-expiring data allocation ( provided you connected at least once every 6 months ), sadly no longer available on new dongles ).
5.
The other niggle is data allocation expiry ( on Three pay-as-you-go, if you top up with 1GB it only lasts a month, and does not roll over ), which is why the 12 month pay-as-you-go package was so attractive ( and its much cheaper than getting a landline installed ).